package com.xiaoleilu.hutool.util;

/**
 * 转义和反转义工具类Escape / Unescape<br>
 * escape采用ISO Latin字符集对指定的字符串进行编码。<br>
 * 所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。
 *
 * @author xiaoleilu
 */
public class EscapeUtil {

    /**
     * Escape编码（Unicode）<br>
     * 该方法不会对 ASCII 字母和数字进行编码，也不会对下面这些 ASCII 标点符号进行编码： * @ - _ + . / 。其他所有的字符都会被转义序列替换。
     *
     * @param content 被转义的内容
     * @return 编码后的字符串
     */
    public static String escape(String content) {
        return org.dromara.hutool.core.text.escape.EscapeUtil.escape(content);
    }

    /**
     * Escape解码
     * @param content 被转义的内容
     * @return 解码后的字符串
     */
    public static String unescape(String content) {
        return org.dromara.hutool.core.text.escape.EscapeUtil.unescape(content);
    }

    /**
     * 安全的unescape文本，当文本不是被escape的时候，返回原文。
     * @param content 内容
     * @return 解码后的字符串，如果解码失败返回原字符串
     */
    public static String safeUnescape(String content) {
        return org.dromara.hutool.core.text.escape.EscapeUtil.safeUnescape(content);
    }
}
